package com.qf.usefull.stringbuffer;

import com.qf.usefull.dict.utils.WordUtils;

/**
 * 如果程序中要进行大量的字符串拼接操作，你会如何编写代码？
 * 注意：不要直接使用 String的 + 运算，会导致程序效率很低，因为要创建大量的String对象在堆内存中
 *
 * 应该使用 StringBuffer来处理 ，因为StringBuffer在堆内存中只会创建一个对象
 */
public class Demo02 {

    public static void main(String[] args) {

        // time userd=16463ms
//        String s = "";
//        long start = System.currentTimeMillis();
//        // 进行10000次字符串拼接操作，统计消耗时间
//        for (int i = 0; i < 20000; i++) {
//            s = s+ WordUtils.randomStr();
//        }
//        long end = System.currentTimeMillis();
//        System.out.println("time userd="+(end-start)+"ms");

        StringBuffer stringBuffer = new StringBuffer();
        long start = System.currentTimeMillis();
        // 进行10000次字符串拼接操作，统计消耗时间
        for (int i = 0; i < 20000; i++) {
            stringBuffer.append(WordUtils.randomStr());
        }
        System.out.println(stringBuffer.length());
        long end = System.currentTimeMillis();
        System.out.println("time userd="+(end-start)+"ms");

    }

}
